package com.yycx.module.bus.provider.mapper.hy;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yycx.common.base.entity.EntityMap;
import com.yycx.common.mybatis.base.mapper.SuperMapper;
import com.yycx.module.bus.client.entity.hy.HyOrder;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * 海鹰数据查询接口
 *
 * @author flyme
 * @date 2021-01-05
 */
@Mapper
public interface HyErpSearchMapper extends SuperMapper<HyOrder> {

    /**
     * 自定义分页查询
     *
     * @param dbName
     * @param page
     * @param wrapper
     * @return
     */
    @Select("select ${ew.select} from ${dbName}${ew.tableName} as ${ew.tableAlias} ${ew.joinSql} ${ew.customSqlSegment}")
    IPage<EntityMap> pageList(@Param("dbName")String dbName,Page<EntityMap> page, @Param("ew") Wrapper<?> wrapper);

    /**
     * 采购单分页列表
     *
     * @param dbName
     * @param params
     * @return
     */
    List<EntityMap> procureList(@Param("dbName") String dbName, @Param("t") Map params);


    /**
     * 统计采购单分页列表条数
     *
     * @param dbName
     * @param params
     * @param dbName
     * @return
     */
    int countProcureList(@Param("dbName") String dbName, @Param("t") Map params);


    /**
     * 采购单明细
     *
     * @param dbName
     * @param params
     * @return
     */
    List<EntityMap> procureDetailList(@Param("dbName") String dbName, @Param("t") Map params);

    /**
     * 统计采采购单明细条数
     *
     * @param dbName
     * @param params
     * @param dbName
     * @return
     */
    int countProcureDetailList(@Param("dbName") String dbName, @Param("t") Map params);


    /**
     * 销售单分页列表
     *
     * @param dbName
     * @param params
     * @return
     */
    List<EntityMap> saleList(@Param("dbName") String dbName, @Param("t") Map params);


    /**
     * 销售明细分页列表条数
     *
     * @param dbName
     * @param params
     * @param dbName
     * @return
     */
    int countSaleList(@Param("dbName") String dbName, @Param("t") Map params);


    /**
     * 销售明细单明细
     *
     * @param dbName
     * @param params
     * @return
     */
    List<EntityMap> saleDetailList(@Param("dbName") String dbName, @Param("t") Map params);

    /**
     * 销售单明细条数
     *
     * @param dbName
     * @param params
     * @param dbName
     * @return
     */
    int countSaleDetailList(@Param("dbName") String dbName, @Param("t") Map params);


    /**
     * 明细账列表
     *
     * @param dbName
     * @param params
     * @return
     */
    List<EntityMap> mxzList(@Param("dbName") String dbName, @Param("t") Map params);

    /**
     * 明细账总条数
     *
     * @param dbName
     * @param params
     * @param dbName
     * @return
     */
    int countMxzList(@Param("dbName") String dbName, @Param("t") Map params);


    /**
     * 查询商品编码
     *
     * @param dbName
     * @param drugsNames
     * @return
     */
    List<String> selectDrugIds(@Param("dbName") String dbName, @Param("drugsNames") List<String> drugsNames);

    /**
     * 查询仓库编码
     *
     * @param dbName
     * @param storeNames
     * @return
     */
    List<String> selectStoreCodes(@Param("dbName") String dbName, @Param("storeNames") List<String> storeNames);


    /**
     * 查询业务员
     *
     * @param dbName
     * @param params
     * @return
     */
    List<EntityMap> selectHySaleManList(@Param("dbName") String dbName, @Param("t") Map params);

    /**
     * 查询部门
     * @param dbName
     * @param params
     * @return
     */
    List<EntityMap> selectHyDeptList(@Param("dbName") String dbName, @Param("t") Map params);

    /**
     * 查询商品
     * @param dbName
     * @param params
     * @return
     */
    List<EntityMap> selectDrugList(@Param("dbName") String dbName, @Param("t") Map params);

    /**
     * 查询客商资料
     */
    List<EntityMap> selectHyCustomList(@Param("dbName") String dbName, @Param("t") Map params);

    /**
     * 查询销售历史
     * @param dbName
     * @param params
     * @return
     */
    List<EntityMap> selectSaleHistoryList(@Param("dbName") String dbName, @Param("t") Map params);


    /**
     * 查询进货历史
     * @param dbName
     * @param params
     * @return
     */
    List<EntityMap> selectStockList(@Param("dbName") String dbName, @Param("t") Map params);

    /**
     * 查询最大业务员ID号
     * @param dbName
     * @return
     */
    String selectHyMaxSaleId(@Param("dbName") String dbName);

    /**
     * 查询业务员
     * @param dbName
     * @param saleManBusinessNo
     * @return
     */
    String selectHySaleManByBusinessNo(@Param("dbName") String dbName,@Param("saleManBusinessNo") String saleManBusinessNo);

}
